# -*- coding: utf-8 -*-
"""
功能：1.将文件夹rootpath中的非word文档复制到outputfolder文件夹下；
     2.将文件夹rootpath中的word文档转为同名pdf保存到outputfolder文件夹下。     
使用：修改rootpath后点击运行。
@author: lh
"""
import win32com.client, os


class Word_2_PDF(object):

    def __init__(self, filepath, Debug=False):  # param Debug: 控制过程是否可视化
        self.wordApp = win32com.client.Dispatch('word.Application')
        self.wordApp.Visible = Debug
        self.myDoc = self.wordApp.Documents.Open(filepath)

    def export_pdf(self, output_file_path):  # 将Word文档转化为PDF文件
        self.myDoc.ExportAsFixedFormat(output_file_path, 17, Item=7, CreateBookmarks=0)


if __name__ == '__main__':
    rootpath = r'F:\学习\演讲稿\TED中英双语官方演讲稿-2010年'  # 文件夹根目录
    newfolder_name = rootpath[rootpath.rfind('\\') + 1:] + 'pdf'
    outputfolder = r"F:\学习\演讲稿\TED中英双语官方演讲稿-2010年\2010pdfVersion"

    filelist = os.listdir(rootpath)
    docfilelist = [i for i in filelist if (i.endswith('doc') or i.endswith('docx'))]

    for eachdocname in docfilelist:
        try:
            w2p = Word_2_PDF(os.path.join(rootpath, eachdocname), False)
            eachpdfname = eachdocname[:eachdocname.rfind('.')] + '.pdf'
            w2p.export_pdf(os.path.join(outputfolder, eachpdfname))
            w2p.myDoc.Close()
        except:
            print("某个文件转换失败！")

        w2p.wordApp.Quit()
        print('转换完成！')
